Multi-User[shell]

쉘(shell): 사용자와 하드웨어 또는 운영체제간의 인터페이스
    사용자의 명령을 해석해서, 커널에 명령을 요청해주는 역할
    관련된 시스템콜을 사용해서 프로그래밍이 작성되어 있다.
쉘 종류
Bourne-Again Shell (bash): GNU 프로젝트의 일환으로 개발됨, 리눅스의 대부분 디폴트
Bourne Shell (sh)
C shell (csh)
Korn Shell (ksh): UNIX에서 가장 많이 사용됨
리눅스 기본 명령어 정리
    리눅스 명령어는 결국 쉘이 제공하는 명령어
    리눅스 기본 쉘이 bash 이므로, bash에서 제공하는 기본 명령어
다중 사용자 관련 명령어
$whoami        //사용자
$passwd        //로그인한 사용자 ID의 암호 변경
$sudo passwd [id]        //id 사용자의 암호 변경
$sudo useradd [id]        //사용자 기본 설정 자동으로 하지 않음
$sudo adduser [id]        //사용자 기본 설정을 자동으로 수행(home directory등 자동으로 생성-adduser쓰는게 좋음)
$pwd        //현재 위치
$sudo [명령어]        //관리자권한으로 명령어 실행(관리자 권한을 빌림)
root 관리자 아이디
sudo를 사용하면 root 권한으로 실행할 수 있다.
sudo를 사용할 수 있는 아이디도 지정할 수 있다.

ls -al 를 통해서 찾을 수 있는 .bashrc, .profile가 환경설정 파일 (/home/users/ 에 저장되어 있음)
$su root        //현재 사용자의 환경설정 기반, root로 변경
$su - root        //변경되는 사용자의 환경설정을 기반으로 root로 전환
sudo 명령어(/etc/sudoers)
/etc/sudoers 설정파일에서 다음과 같이 설정을 변경할 수 있다.
    visudo가 설치되어 있다면, 해당 명령을 통해 설정 파일이 오픈되어 수정 가능

$cd /etc
$sudo vi sudoers

1. 특정 사용자가 sudo를 사용할 수 있도록 설정
userid    ALL=(ALL)    ALL
2. 특정 그룹에 포함된 모든 사용자가 sudo를 사용할 수 있도록 설정
%group    ALL=(ALL)    ALL
3. 패스워드 생략 설정
%group    ALL=(ALL)    NOPASSWD: ALL
userid    ALL=(ALL)    NOPASSWD: ALL
root 사용자를 이용해서 로그인하면, 명령에 대한 철회가 어려움: root로 로그인을 잘 안함(대신 sudo로 사용)
$cd        //change directory
$cd~        //자기아이디의 home 디렉토리로 이동
$cd-        //이동하기 전 디렉토리로 이동
$ls        //현 디렉토리 파일 출력
$dir        //ls 와 동일하게 수행
$ls -al        // 숨김파일 (.filename)까지 포함해서 출력    (‘ . ‘은 현재 디렉토리 ‘ .. ‘은 이전(상위) 디렉토리를 말함)
$ls [char]*        //[char]포함된 파일 출력
$ls [char]?        //'[char]+1문자’ 파일명 파일 출력

$man [명령어]        //해당명령의 사용법과 옵션을 볼 수 있다.( :q를 통해 exit)
$last        //컴퓨터 최근 접속 기록 출력
$last -f /var/log/btmp | more